TOP

Traductor de Google en LibreOffice Calc

Descripción

La funcionalidad estándar del programa LibreOffice Calc no incluye funciones para traducir texto a otros idiomas. Sin embargo, cualquier usuario puede crear dicha función de forma independiente.

En este artículo, veremos la función personalizada GoogleTranslate_YouLibreCalc(), que le permitirá traducir texto directamente en una celda de cualquier hoja de trabajo.

La función utiliza el sitio para traducir el texto. "Google Translate" y se puede utilizar en cualquier fórmula tanto de forma independiente como junto con otras funciones estándar.



StarBASIC código para la función Google Translate

para agregar función Google Translate , abre el menú Tools - Macros - Edit Macros... , seleccionar Module1 y copie el siguiente texto en el módulo:

Option VBASupport 1

Function GoogleTranslate_YouLibreCalc(TextToTranslate As String, SrcLang As String, TrgLang As String)
  ' moonexcel.com.ua 
  Dim FCalc      As Object
  Dim WebsiteURL As String  
  Dim XMLHTTP    As Object
  Dim oHTML      As Object
  Dim HTMLDoc    As HTMLDocument
  Dim ObjClass   As Object
    
  FCalc = CreateUnoService("com.sun.star.sheet.FunctionAccess") 
  TextToTranslate =  FCalc.callFunction("ENCODEURL", Array(TextToTranslate))
  
  SrcLang = LCase(SrcLang)
  TrgLang = LCase(TrgLang)
  
  IF SrcLang = "zh-cn" Then SrcLang = "zh-CN"
  IF SrcLang = "zh-tw" Then SrcLang = "zh-TW"
  
  IF TrgLang = "zh-cn" Then TrgLang = "zh-CN"
  IF TrgLang = "zh-tw" Then TrgLang = "zh-TW" 
    
  WebsiteURL = "https://translate.google.com/m?sl=" + SrcLang + "&tl=" + TrgLang + "&hl=en&q=" + TextToTranslate
    
  ' Ejecutamos la llamada API al servidor web mediante la solicitud AJAX 
  Set XMLHTTP = CreateObject("MSXML2.ServerXMLHTTP")
 
  XMLHTTP.Open "GET", WebsiteURL, False  
  XMLHTTP.Send
 
  ' Creamos un documento HTML usando el texto de respuesta de la solicitud AJAX 
  Set oHTML = CreateObject("HTMLFile")
  With oHTML
        .Open
        .Write XMLHTTP.responseText
        .Close
  End With
  
  ' Convertimos texto HTML en un modelo de objetos usando la biblioteca de elementos web Microsoft HTML Object Library 
  Set HTMLDoc = oHTML  
  
  Set ObjClass = HTMLDoc.getElementsByClassName("result-container").Item(0)
  If Not ObjClass Is Nothing Then
    GoogleTranslate_YouLibreCalc = ObjClass.innerText    
  End If 
 
  ' Liberamos la memoria 
  Set ObjClass = Nothing
  Set oHTML    = Nothing
  Set XMLHTTP  = Nothing  
End Function

A continuación, cerrar Macro Editor y regresar a la hoja de trabajo LibreOffice Calc , seleccione cualquier celda y use nuestra nueva función GoogleTranslate_YouLibreCalc() .

Usando la extensión

También puedes utilizar la función GOOGLETRANSLATE() instalando la extensión gratuita YouLibreCalc.oxt o su versión con todas las funciones YLC_Utilities.oxt .

Después de eso, esta función estará disponible en todos los archivos que se abrirán en LibreOffice Calc.

Menú YLC Utilities en LO Calc

Menú YLC Utilities en LO Calc

Menú YLC Utilities en Excel

Menú YLC Utilities en Excel